<?php

class CURL {
	var $callback = false;

	function setCallback($func_name) {
		$this->callback = $func_name;
	}


	function doRequest($method, $url, $vars,$options = array()) {
		$ch = curl_init ();
		curl_setopt ( $ch, CURLOPT_URL, $url );
		//curl_setopt ( $ch, CURLOPT_HEADER, 1 );
		//curl_setopt ( $ch, CURLOPT_USERAGENT, $_SERVER ['HTTP_USER_AGENT'] );
		curl_setopt ( $ch, CURLOPT_FOLLOWLOCATION, 1 );
		curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
		//curl_setopt ( $ch, CURLOPT_SSL_VERIFYHOST, 2 );
		//curl_setopt($ch, CURLOPT_USERAGENT, $defined_vars['HTTP_USER_AGENT']);
		curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
 		curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
 		foreach ($options as $k =>$v){
 			curl_setopt ($ch, $k, $v);

 		}

		//curl_setopt($ch,CURLOPT_TIMEOUT_MS,2000);

		curl_setopt ( $ch, CURLOPT_COOKIEJAR, 'cookie.txt' );
		curl_setopt ( $ch, CURLOPT_COOKIEFILE, 'cookie.txt' );
		if ($method == 'POST') {
			curl_setopt ( $ch, CURLOPT_POST, 1 );
			curl_setopt ( $ch, CURLOPT_POSTFIELDS, $vars );
		}
		$data = curl_exec ( $ch );

		if ($data) {
			if ($this->callback) {
				$callback = $this->callback;
				$this->callback = false;
				return call_user_func ( $callback, $data );
			} else {
				return $data;
			}
		} else {
			return curl_error ( $ch );
		}
	}

	public function get($url,$options =array()) {
		return $this->doRequest ( 'GET', $url, 'NULL' ,$options);
	}

	function post($url, $vars,$options =array()) {
		return $this->doRequest ( 'POST', $url, $vars ,$options);
	}
}

?>
